Математический анализ
Вычисление сумм последовательностей
Применение систем символьной математики особенно эффективно
при решении задач математического анализа. Maple
обладает богатейшей базой данных по формулам математического анализа и может
полноценно заменять тома книг со справочными данными. При этом важно, что Maple не только «знает» многие формулы, но и может успешно
использовать их при решении достаточно сложных задач в аналитическом
(символьном) виде.
Начнем рассмотрение таких операций с вычисления сумм
последовательностей. Вычисление суммы членов некоторой последовательности f(k) при изменении целочисленного
индекса k от значения m до
значения n с шагом +1, то есть выражения:

является
достаточно распространенной операцией математического анализа. Для вычисляемой и инертной форм сумм последовательностей служат
следующие функции:
sum(f.k): sum(f,k=m..n);
sum(f,k=alpha):
Sum(f.k); Sum(f,k=m..n);
Sum(f,k=a1pha);
Здесь f — функция, задающая члены
суммируемого ряда, k — индекс суммирования, тип —
целочисленные пределы изменения k, alpha — RootOf-выражение. Значение n
может быть равно бесконечности. В этом случае для n
используется обозначение ? или infinity.
Допустимо (а зачастую рекомендуется с целью исключения
преждевременной оценки суммы) заключение f и k в прямые кавычки, например sum('f', 'k'=m. .n).
Простейшими являются суммы последовательностей с
фиксированным числом членов. Ниже даны примеры применения этих функций:
Пример1.
> k:=2: Sum(k^2, k=1..4);
> sum(k^2,
k=1..4);
> sum(‘k^2’,’k’=1..4);
> sum(1/i, i=1..100);
Обратите внимание, что во втором примере система отказалась
от вычисления, а в третьем даже выдала сообщение об ошибке, связанной с тем,
что переменной k перед вычислением сумм было
присвоено численное значение 2. После заключения выражения и переменной индекса
k в прямые кавычки ошибка исчезла, поскольку такая
операция означает, что переменной придается неопределенное значение.
Особый класс образуют последовательности, у которых предел
задается в общем виде значением переменной. Ниже представлен ряд
последовательностей, у которых предел задается как 0.. n
или 1.. n:
Пример 2.
Ø
Sum (k, k=1..n);
Ø
sum (i/(i+1), i=0..n);
Ø
sum (k*binomial(n,k), k=0..n)
Такого рода последовательности, как видно из приведенных
примеров, нередко имеют аналитические выражения для своего значения. Его
вычисление намного проще, чем формирование заданной последовательности с прямым
суммированием ее членов. Некоторые из таких сумм выражаются через специальные
математические функции.
Многие суммы бесконечных последовательностей сходятся к
определенным численным или символьным значениям, и система Maple
способна их вычислять. Это поясняют следующие примеры:
Ø
sum(-exp(-k), k);
Ø
sum(k*a^k, k);
Ø
sum(1/k!, k=0..infinity);
Ø
Sum(1/i^2, i=1..infinity)=sum(1/i^2,i=1..infinity);
Ø
Sum(1/n!, n=1..infinity)=sum(1/n!,n=1..infinity);
Ø
evalf(%);
Ø
Sum(1/i^2, i)=sum(1/i^2,i);
![]()
Ø
evalf(%);
![]()
![]()
![]()
В Maple при вычислении сумм
последовательностей надо строго соблюдать прямой (нарастающий) порядок задания
значений индексной переменной суммы. Нарушение этого порядка чревато грубыми
ошибками
![]()
![]()
Могут встречаться множественные суммы по типу «сумма в
сумме». Ограничимся приведением примера двойной суммы, имеющей аналитическое
значение:
![]()
При конкретном значении N такую сумму нетрудно вычислить
подстановкой:
> subs( N =
100, %);
8670850
Как видно из приведенных примеров, средства вычисления сумм
последовательностей Maple позволяют получать
как численные, так и аналитические значения сумм, в том числе представляемые
специальными математическими функциями.
Основные формулы для произведения членов последовательностей
Аналогичным образом для произведений членов f(i) некоторой
последовательности, например вида:

используются следующие функции:
product(f,k);
product(f,k=m..n):
product (f,k=alpha):
Product(f,k); Product(f,k=m..n): Product(f,k=alpha).
Обозначения параметров этих функций и их назначение
соответствуют приведенным для функций вычисления сумм.
Это относится, в частности, и к применению одиночных кавычек для f и k.
Примеры применения функций вычисления произведений даны
ниже:
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Как и в случае вычисления сумм, вычисление произведений
возможно как в численной, так и в аналитической форме — разумеется, если
таковая существует. Это показывает следующий пример:
![]()
Нетрудно понять, что при i, стремящемся к бесконечности, перемножаемые члены
последовательности стремятся к нулю, а потому к нулю стремится и их
произведение. Вопросы доказательства подобных утверждений находятся за рамками
данного учебного курса, ибо он посвящен не математике как таковой, а конкретной
программе для математики — Maple
Хотя произведение не зависит от порядка расположения
сомножителей, их перестановка в Maple недопустима.
Это иллюстрируют следующие примеры:
![]()
![]()
При вычислении произведений надо строго соблюдать
прямой (нарастающий) порядок задания значений индексной переменной
произведения. Нарушение этого порядка чревато грубыми ошибками.
. Вычисление производных
Вычисление производных функций fn(x) = dfn(x)/dxn n-го порядка —
одна из самых распространенных задач математического анализа. Для ее реализации
Maple имеет следующие основные функции:
diff(a., xl, х2, .... xn) diff(a, [xl, х2, .... хn])
Diff(a, xl, x2, .... xn) Diff(a, [xl, x2, .... хn])
Здесь а
— дифференцируемое алгебраическое выражение, властности функция f(xl. x2, .... хn) ряда переменных, по которым
производится дифференцирование. Функция Diff является
инертной формой вычисляемой функции diff и может
использоваться для естественного воспроизведения производных в документах.
Первая из этих функций (в вычисляемой и в инертной форме) вычисляет частные
производные для выражения а по переменным xl, х2, ..., .хn. В простейшем случае diff(f(x),x) вычисляет первую производную функции f(x) по переменной х. При n, большем 1, вычисления производных выполняются рекурсивно,
например diff (f (х), х, у) эквивалентно diff(diff (f(x), х), у). Оператор $ можно
использовать для вычисления производных высокого порядка. Для этого после имени
соответствующей переменной ставится этот оператор и указывается порядок
производной. Например, выражение diff (f(x) ,x$4) вычисляет производную
4-го порядка и эквивалентно записи diff (f (х) ,х,х,х,х). A diff (g(x,y) ,x$2,y$3) эквивалентно diff(g(x,y),x,x,y,y,y) ;
Примеры вычисления производных:
![]()
![]()
![]()
![]()
![]()
Как видно из приведенных примеров, функции вычисления
производных могут использоваться с параметрами, заданными списками. Приведенные
ниже примеры показывают эти возможности и иллюстрируют дифференцирование
функции пользователя для двух переменных:
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Получаемые в результате дифференцирования выражения могут
входить в другие выражения. Можно задавать их как функции пользователя и
строить графики производных
Для создания функций с производными может также использоваться
дифференциальный оператор D. Порою он позволяет
создавать более компактные выражения, чем функции diff
и Diff. Дифференциальный оператор можно записывать в
следующих формах: D(f) или D[i](f), где параметр f — выражение
или имя функции, i — положительное целое число,
выражение или последовательность. Оператор D(f)
просто вычисляет имя производной от f, поскольку в
этой форме он эквивалентен unnaplyCdiff (f (х) ,х) ,х). В форме D(f) (х) этот оператор подобен diff (f (x)
,x).
Приведем примеры дифференцирования функций, заданных только
именами, и функций с одним параметром:
![]()
![]()
![]()
![]()
Следующий пример показывает дифференцирование функции
пользователя fun с применением дифференциального
оператора D и функции diff:
![]()
![]()
Дифференциальный оператор можно применять и для
дифференцирования функций нескольких переменных по заданной переменной:
![]()
![]()
![]()
![]()
Пример применения дифференциального оператора для функции f, заданной программным объектом-процедурой, представлен
ниже:

![]()
Этот пример показывает реализацию схемы Горнера для
полинома b степени n от
переменной х. При этом применение оператора дифференцирования возвращает
процедуру. Ряд интересных возможностей по вычислению производных предоставляет
пакет расширения student.
. Вычисление интегралов
Вычисление неопределенного интеграла обычно заключается в
нахождении первообразной функции. Это одна из широко распространенных операций
математического анализа.
Для вычисления неопределенных и определенных интегралов Maple предоставляет следующие функции:
int(f.x); int(f.x=a..b);
int(f.x=a..b,continuous):
Int(f.x); Int(f,x=a..b):
Int(f,x=a..b,continuous):
Здесь f — подынтегральная
функция, х — переменная, по которой выполняются
вычисления, а и b — нижний и верхний пределы
интегрирования, continuous — необязательное
дополнительное условие.
Maple старается найти аналитическое значение интеграла с
заданной подынтегральной функцией, Если это не удается (например, для «не
берущихся» интегралов), то возвращается исходная запись интеграла. Для
вычисления определенного интеграла надо использовать функцию evalf(int(f
,х=а. .b)). Ниже приведены
примеры вычисления интегралов:
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Обратите внимание, что в аналитическом представлении
неопределенных интегралов отсутствует произвольная
постоянная С. Не следует забывать о ее существовании. Для вычисления кратных
интегралов (двойных, тройных и т. д.) следует применять функцию int (или Int) внутри такой же
функции, делая это столько раз, сколько нужно. В отличие от функции
дифференцирования для функции интегрирования нельзя задавать подынтегральные
функции в виде списка или множества. Возможно вычисление сумм интегралов и
интегралов сумм, а также интегралов от полиномов:
![]()
![]()
![]()
![]()
![]()
В некоторых случаях Maple не
может вычислить интеграл. Тогда она просто повторяет его. С помощью функций taylor и convert можно попытаться
получить аналитическое решение в виде полинома умеренной степени, что
демонстрирует следующий характерный пример:
![]()
![]()
Естественно, что в этом случае решение является
приближенным, но оно все же есть и с ним можно работать, например
построить график функции, представляющей данный интеграл.
Система Maple непрерывно
совершенствуется. Например, в Maple V R4 интеграл с
подынтегральной функцией ехр(x^4) не брался, а
система Maple 7 с легкостью берет его:
![]()
Хотя полученный результат, выраженный через гамма- функцию, нельзя назвать очень простым, но он существует и
с ним также можно работать. Например, можно попытаться несколько упростить его,
используя функцию simplify:
> simplify(%);
Другой важной операцией является нахождение в аналитической
или численной форме определенного интеграла:
Определенный интеграл удобно трактовать как площадь,
ограниченную кривой f(x),
осью абсцисс и вертикалями с координатами, равными а и b.
При этом площадь ниже оси абсцисс считается отрицательной. Таким образом,
значение определенного интеграла — это число или вычисляемое выражение.
Для вычисления определенных интегралов используются те же
функции int и Int, в
которых надо указать пределы интегрирования, например х=а..
b, если интегрируется функция переменной х. Это
поясняется приведенными ниже примерами:
![]()
![]()
![]()
![]()
![]()
![]()
Maple с легкостью берет некоторые каверзные интегралы и
позволяет сразу и без какой-либо настройки вычислить для них как точное, так и
приближенное значение:
![]()
> evalf(%,30);
Хотя первое из решений является самым кратким и, скорее
всего, единственным точным решением, оно может и должно насторожить опытного
пользователя. Дело в том, что в полученном выражении фигурируют большие числа,
и потому для правильного приближенного решения (в виде вещественного числа в
научной нотации) нужно заведомо использовать аппарат точной арифметики и ни в
коем случае не полагаться на погрешность, заданную по умолчанию.
![]()
Нетрудно заметить, что решение распадается на множество
слагаемых, соответствующих общеизвестному интегрированию по частям. В каждом
слагаемом имеются большие числа, и потому принципиально необходимо применение
арифметики высокой точности (или разрядности). Maple такими средствами, причем превосходными,
обладает.
Продолжим изучение данного «каверзного» интеграла. Опробуем
силы Maple на интеграле более общего вида, где
конкретный показатель степени заменен на обобщенный —n. Здесь нас ожидает приятный сюрприз — Maple
с легкостью выдает аналитическое решение для данного определенного интеграла:
![]()
Ø
y(n);
Ø
y(20);
Ø
evalf(%,30);
Ø y(20.);
Maple при конкретном n = 20 дает грубо неверное решение — 0 (почему — уже
объяснялось). Забавно, что при этом сама по себе функция WhittakerM
вычисляется для n = 20 без проблем:
> WhittakerM(10,10.5.1);
6353509348
А теперь присмотритесь к новому результату вычисления
злополучного интеграла. Оказывается, он уже не содержит больших чисел,
свойственных прямому решению! Зная значение WhittakerM
с погрешностью по умолчанию, можно уверенно вычислить приближенное численное
значение интеграла с той же погрешностью, уже не прибегая к арифметике высокой
точности:
> (exp(-.5)*WihittakerM(10,10.5.1))/21;
01835046770
Наличие у функции особых (сингулярных) точек нередко
затрудняет выполнение с ней ряда операций, таких как численное интегрирование.
В этом случае могут помочь соответствующие параметры. Например, вычисление
следующего интеграла дает явно неудобное выражение в виде набора значений,
разных для разных интервалов изменения:
![]()
![]()
Увы, попытка вычислить по этому выражению значение
интеграла не всегда дает корректный результат. Например, при х от -2 до 0 получаются бесконечные значения. Да и график
зависимости значения интеграла от параметра a имеет
подозрительный вид. Это как раз тот случай, когда с ходу доверяться результатам
Maple рискованно.
В данном случае приходится констатировать давно известный
факт — системы компьютерной математики (и Maple в их
числе) не всесильны и всегда можно найти интегралы
даже с обманчиво простым внешним видом, которые поставят систему в тупик или
дадут неверные результаты в той или иной области изменения аргументов.
Особенно, опасны интегралы от кусочных функций с
разрывами и интегралы, представляемые такими функциями. Именно к ним и
относится обсуждаемый сейчас интеграл. Не меньше проблем вызывают интегралы от
функций, области определения которых заданы
некорректно или просто не изучены.
Между тем ситуация вовсе не является безнадежной. Надо
просто знать, что предпринять, чтобы подсказать системе правильный путь
решения. Например, в нашем случае, применив параметр continuous
(в апострофах), можно получить куда более простое выражение:
![]()
>F(a);
![]()
Пример показывает это решение с двумя важными дополнениями
— оно представляется функцией пользователя, а ее график строится при изменении а от -10 до 10.
Приведем еще один пример «каверзного» интеграла довольно
простого вида:
> int(1/x^3,x=-1..2);
undefined
Этот интеграл вообще не берется функцией int без указания параметров (в строке вывода сообщается об
этом). Но введение параметра CauchyPrincipalValue
позволяет получить значение интеграла:
![]()
Возьмем еще один наглядный пример — вычисление интеграла от
синусоидальной функции при произвольно больших пределах, но кратных 2!
Очевидно, что при этом (учитывая равность площадей положительной и
отрицательной полуволн синусоиды) значение интеграла будет равно 0. Например:
> int(sin(x),x-1000*pi..l000*pi);
0
![]()
![]()
Однако распространение этого правила на бесконечные пределы
интегрирования является грубейшей ошибкой. Интеграл такого рода уже не берется
(или говорят, что он не сходится), и Maple дает
соответствующий результат:
> int(sin(x),x=-infinity..infinity);
undefined
Во многих областях техники часто употребляются выражения
«затухающая синусоида» или «нарастающая синусоида». Иногда говорят и о
«синусоиде с уменьшающейся или возрастающей амплитудой». Бесполезно утверждать,
что эти названия принципиально ошибочны — в рамках допущений, принятых в
технических расчетах, такие утверждения весьма наглядны и эта, в частных
случаях вполне оправданная, наглядность с позиций математики идет в ущерб
точности фундаментальных определений.
Возьмем, к примеру, широко распространенную функцию: y(t) = exp(-t)sin(2*Pi*t). Построим ее график
и вычислим определенный интеграл от этой функции с пределами от 0 до oo
С первого взгляда на график видно, что каждая положительная
полуволна функции (затухающей «синусоиды») явно больше последующей
отрицательной полуволны. К тому же осцилляции функции быстро затухают
и через десяток-другой периодов значение функции становится исчезающе малым. Вот почему Maple
уверенно вычисляет интеграл с такой подынтегральной функцией. Ее свойство —
неопределенность при t->oo
исчезает.
![]()
![]()
Однако называть такую функцию «затухающей синусоидой»,
безусловно, неточно. Умножение sin(2pt) на множитель,
зависящий от времени t, лишает функцию главного
свойства синусоиды — ее строгой симметрии. Так что exp(-t)sin(2pt) — это совсем новая
функция со своими отличительными свойствами. Главные из них — несимметрия при малых t и исчезающе малые значения при
больших t. Ни тем, ни другим свойством обычная
синусоида не обладает. А теперь возьмем антипод этой функции — «синусоиду с
экспоненциально нарастающей до стационарного значения 1 амплитудой». Такая
функция записывается следующим образом:
Y(t) = (1 - exp(-t)) sin(2*Pi*t).
Ее график и попытки вычисления интеграла с такой
подынтегральной функцией приведены в следующем примере
Обратите внимание на то, что здесь прямое вычисление
интеграла к успеху не привело, хотя из графика функции видно, что каждая
положительная полуволна в близкой к t = 0 области
явно больше по амплитуде, чем последующая отрицательная полуволна. Однако в
отличие от предыдущей функции при больших значениях аргумента данная функция
вырождается в обычную синусоиду с неизменной (и равной 1) амплитудой. Вот
почему трудяга Maple честно
отказывается вычислять интеграл от такой коварной функции.
![]()
![]()
На этом примере очень четко отслеживается разница в
мышлении инженера и математика. Инженер скажет, что интеграл с такой функций
должен быть, поскольку вначале положительные площади явно меньше отрицательных,
а в дальней области они выравниваются, и потому площадь каждого «периода»
функции становится примерно нулевой. По-своему инженер прав — если его не
интересует точное определение подынтегральной области в заоблачных высотах
бесконечности, то мы должны получить то же значение интеграла, что в
предшествующем примере, но со знаком «минус». И в самом деле (см. рис. 8.5),
интегрируя в пределах от 0 до100, мы получаем именно это значение (опять-таки в
пределах погрешности по умолчанию).
И все же прав здесь математик — переход от интегрирования с
конечным (да еще и кратным 2) пределом к интегрированию с бесконечным пределом
— далеко не простая операция. Она требует учета поведения функции при значении
аргумента, стремящегося к бесконечности, а тут говорить о нулевой
алгебраической площади синусоиды некорректно, ибо никакой кратности величине 2
у бесконечности нет! Остается лишь радоваться тому, что система Maple может примирить математиков и инженеров, дав им в
руки средства, позволяющие решать подобные задачи с приближениями, приемлемыми
для тех или иных категорий пользователей.
Мы подробно рассмотрели этот класс задач потому, что многие
важные интегральные преобразования (например, преобразование Фурье) оперируют с
подобными подынтегральными функциями и надо тщательно разбираться в областях их
применения.
К интересному классу интегралов относятся определенные
интегралы с переменными пределами интегрирования. Если обычный определенный
интеграл представлен числом (или площадью в геометрической интерпретации), то
интегралы с переменными пределами являются функциями этих пределов.
Показано два примера задания простых определенных
интегралов с переменным верхним пределом (сверху) и обоими пределами
интегрирования (снизу).
![]()
В этом примере построены также графики подынтегральной
функции (это наклонная прямая) и функции, которую задает интеграл.
Функции int и Int
могут использоваться для вычисления кратных интегралов, например двойных и
тройных. Для этого функции записываются многократно:
![]()
>value(%)
![]()
>value(%)
![]()
>value(%)
Описанная возможность вычисления кратных интегралов
функциями Int и int не
является вполне законной. В пакете расширения student
имеются дополнительные функции интегрирования, которые дополняют уже описанные
возможности. В частности, в этом пакете есть функции для вычисления двойных и
тройных интегралов.
Вычисление пределов функций
Для вычисления пределов функции f
в точке х =а используются
следующие функции:
limit(f,x=a); limit(f,x=a.dir);
Limit(f.x=a); Limit(f.x-a.dir);
Здесь f - алгебраическое
выражение, х - имя переменной, dir
- параметр, указывающий на направление поиска предела (left
— слева, right — справа, real
— в области вещественных значений, complex — в
области комплексных значений). Значением а может быть
бесконечность (как положительная, так и отрицательная). Примеры применения этих
функций для вычисления пределов в точке приведены ниже:
>Limit(f(x),x=a)
>Limit (sin(x)/x,x=0)= limit (sin(x)/x,x=0)
>Limit(1-exp(-x)),
x=infinity)= limit(1-exp(-x)), x=infinity)
> Limit(exp(x)),
x=infinity)= limit(exp(x)), x=infinity)
> Limit(exp(-x)),
x=infinity)= limit(exp(x)), x=infinity)
> Limit(x-sin(x)/x^3,x=0),
x=infinity)= limit(x-sin(x)/x^3,x=0), x=infinity)
Limit(Pi-2*x)*tan(x),x=Pi/2)=
limit(Pi-2*x)*tan(x),x=Pi/2)
Обратите внимание на то, что в первом примере фактически
дано обозначение предела в самом общем виде. Рисунок 8.7 показывает вычисление
пределов функции tan(x) в
точке х=n/2, а также слева и справа от нее. Для
указания направления используются опции right
(справа) и left (слева). Видно, что в самой точке
предел не определен (значение undefined), а пределы
справа и слева уходят в бесконечность.
Постройте график функции tan(x), который наглядно подтверждает существование пределов
справа и слева от точки х = П/2
и отсутствие их в самой этой точке, где функция испытывает разрыв от значения +oo до -oo.
Разложение функций в ряды
Для разложения функции или выражения ехрr в обычный степенной ряд служат функции series(ехрr, eqn)
и series(expr, eqn, n). Здесь ехрr — разлагаемое выражение, eqn — условие (например, в виде х=а)
или имя переменной (например, х) и n — необязательное и неотрицательное целое число, задающее
число членов ряда (при его отсутствии оно по умолчанию берется равным 6, но
может переустанавливаться системной переменной Order).
Если в качестве eqn задано имя переменной, то это
соответствует разложению по этой переменной в области точки с ее нулевым
значением. Задав eqn в виде х=х0,
можно получить разложение по переменной х в
окрестности точки х = х0.
Разложение получается в форме степенного многочлена,
коэффициенты которого задаются рациональными числами. Остаточная погрешность
задается членом вида 0(х)^n.
При точном разложении этот член отсутствует. В общем случае для его удаления
можно использовать функцию convert. Ниже представлены
примеры разложения различных выражений в ряд:
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Здесь видно, что член, обозначающий погрешность,
отсутствует в тех разложениях, которые точны, например, в разложениях степенных
многочленов. Для визуализации приближения рядами заданных аналитических
зависимостей очень полезно построить на одном графике кривые аналитической
зависимости и разложения в ряд. Мы это покажем чуть позже на примере ряда
Тейлора.
Для разложения в ряд Тейлора используется функция taylor(expr, eq/nm, n). Здесь ехрr — разлагаемое в ряд выражение, eq/nm — равенство (в виде х=а) или
имя переменной (например, х), n
— необязательный параметр, указывающий на порядок разложения и представленный
целым положительным числом (при отсутствии указания порядка он по умолчанию
принимается равным 6). При задании eq/nm в виде х=а
разложение производится относительно точки х =а. При
указании eq/nm в виде
просто имени переменной разложение ищется в окрестности нулевой точки, то есть
фактически вычисляется ряд Маклорена.
Ниже представлены примеры применения функции taylor:
![]()
![]()
![]()
![]()
![]()
Не все выражения (функции) имеют разложение в ряд Тейлора.
Ниже дан пример такого рода:
>
> series(l/x+x^2,x,10);
>
Здесь Maple отказалась от
вычисления ряда Тейлора в окрестности точки х = 0 (по
умолчанию) и предложил воспользоваться функцией series.
Однако эта функция просто повторяет исходное разложение. В то же время в
окрестности точки х = 1 ряд Тейлора вычисляется.
Для разложения в ряд Тейлора функций
нескольких переменных используется библиотечная функция mtaylor:
mtaylor(f. v)
mtaylorCf. v. n)
mtaylor(f. v, n, w)
Здесь f — алгебраическое выражение, v —
список имен или равенств, n — необязательное число,
задающее порядок разложения, w — необязательный
список целых чисел, задающих «вес» каждой из переменных списка v. Эта функция должна вызываться из библиотеки Maple с помощью команды readlib:
![]()
![]()
![]()
Для
получения только коэффициента при k=м члене ряда
Тейлора можно использовать функцию coeftayl (expr,var,k). Если ехрr
— функция нескольких переменных, то k должен
задаваться списком порядков коэффициентов.
Полезно сочетать разложение выражений (функций) в ряд
Тейлора с графической визуализацией такого разложения. Рассмотрим документ, в
котором наглядно показаны возможности представления функции рядами Тейлора и Маклорена. На рис. показана первая часть документа. Она дает пример разложения
в ряд Тейлора функции sin(x)
с построением ее графика и графика по разложению в ряд. Поскольку выбрано
разложение относительно точки х = 0, то полученный
ряд является рядом Маклорена. Это хороший пример
визуализации результатов математических вычислений — здесь наглядно видно, что
при малых значениях х график ряда практически
повторяет разлагаемую функцию, но затем начинает сильно от нее отходить.
Обратите внимание, несмотря на то
что мы задали шестой порядок ряда, последний член имеет только пятый порядок.
Это связано со спецификой данного разложения — в нем просто отсутствуют члены
четного порядка. Можно буквально в считанные секунды попробовать изменить число
членов ряда или диапазон изменения переменной х, что
и показано на рис. (вторая
часть документа). При этом легко убедиться в том, что при больших
х поведение ряда не имеет ничего общего с поведением
разлагаемой в ряд функции, в частности нет и намека на периодичность
разложения, которая присуща тригонометрической функции sin(x).
![]()
